package com.basic

import org.apache.spark.sql.{Dataset, SparkSession}


object CreateDataSet {

  def main(args: Array[String]): Unit = {
//    demo1()   // 对象
    demo2() // 基本数据类型
  }

  /**
   * 对象
   */
  def demo1(): Unit = {
    val sparkSession = SparkSession
      .builder()
      .master("local[*]")
      .appName("CreateDataSet")
      .getOrCreate()

    import sparkSession.implicits._

    val list = List(User("张三", 15), User("李四", 20), User("王五", 25))
    val ds = list.toDS()

    // 在ds做sql查询
    // 定义临时视图
    ds.createOrReplaceTempView("user")
    //查询语句
    sparkSession.sql("select * from user where age > 15").show
    sparkSession.stop()


    sparkSession.close()
  }

  /**
   * 基本数据类型
   */
  def demo2(): Unit = {
    val sparkSession: SparkSession = SparkSession
      .builder()
      .master("local[*]")
      .appName("CreateDS")
      .getOrCreate()
    import sparkSession.implicits._

    val list1 = List(30, 50, 70, 60, 10, 20)
    // 把集合转成ds
    val ds: Dataset[Int] = list1.toDS()
    // df能用的ds一定可以用
    ds.show
  }


}
